Amazon EC2のWindows用復旧ツール『EC2Rescue』が利用可能になりました
大栗です。
先日EC2のWindows用復旧ツールがリリースされたのでご紹介します。
- Amazon EC2Rescue is now available
- How can I use EC2Rescue to troubleshoot and fix common issues on my EC2 Windows instance?
EC2Rescueとは
EC2のWindowsインスタンスに接続できなかったり、起動に関する問題が発生していたりする場合に分析やトラブルシューティングのためにログの収集などを行うことができます。
具体的には以下の機能があります。
- Current Instance Option(ログインしているインスタンスに対する機能)
- Capture Logs:ログ収集
- Offline Instance Option(起動していないインスタンスに対する機能)
- Diagnose and Rescue:問題を自動検出して修正することができる
- Restore:レジストリのリストア
- Capture Logs:ログ収集
以前からAWS Diagnostics for Windows Serverというツールがありましたが、その後継ツールのようです。
Diagnose and Rescue
OSにネットワーク設定によりアクセスできない場合に、問題を診断して解決することができます。
- システム時刻
- RealTimeIsUniversalの設定に問題がある場合に設定を修正できます。
- WIndowsファイアウォール
- Windowsファイアウォールでインバウンド通信がブロックされていないことを確認するために、Windowsファイアウォールを無効にできます。
- リモートデスクトップ
- サービスの自動開始
- リモートデスクトップの接続許可
- ポートが3389になっているか
- EC2Config(Windows Server 2016はサポートしません)
- OSの起動時タスクで最新のEC2Configをインストールすることができます。
- ネットワークインタフェース
- ネットワーク設定を確認します。DHCPサービスが自動で開始するかを確認して修正できます。
- イーサネット詳細
- インストールされているネットワークドライバとバージョンの表示
- 対応しているドライバを使用しているか
- ネットワークドライバの詳細情報
- DHCPのIPアドレスとの一致
- DHCPの有効化
Restore
レジストリの構成に問題が有るか破損している場合に、復旧を行います。「前回正常起動時の構成」で起動するかバックアップから復元する事ができます。
Capture Logs
現在のインスタンスかオフラインのインスタンスに対して、システムログやAWSログなどを収集します。収集する対象には以下のオプションがあります。
EC2Rescueを試す
EC2Rescueを実際に試してみます。
事前準備
Offline Instance Optionの場合は全機能を使用できるので、準備を行います。
対象環境は、以下とします。
- EC2Rescueインスタンス:Instace 1
- 復旧対象インスタンス:Instace 2
- OS:Windows Server 2016
まずは、Instace 1とInstace 2を作成します。そしてInstance 2は停止してルートボリューム(Volume2)をInstance 1にアタッチしてきます。
次にInstace 1にEC2Rescueを導入します。EC2Rescueは以下のURLからダウンロードします。
https://s3.amazonaws.com/ec2rescue/windows/EC2Rescue_latest.zip
解凍すると、以下のファイルになります。
PS C:\Users\Administrator\EC2Rescue_latest> Get-ChildItem Directory: C:\Users\Administrator\EC2Rescue_latest Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2/7/2017 2:39 AM 214248 EC2Rescue.chm -a---- 2/7/2017 2:49 AM 262632 EC2Rescue.exe -a---- 12/1/2016 8:44 AM 1325 EC2Rescue.exe.config -a---- 1/16/2017 12:18 AM 1221 license.txt -a---- 2/7/2017 4:51 AM 3775 README.txt
EC2Rescue.exeを実行します。初回実行時にはライセンス同意のダイアログが表示されます。
Nextをクリックします。
今回は別のインスタンスの復旧を行うため「Offline instance」をクリックします。
復旧対象のディスクを選択します。
ディスクがオフラインの場合には、オンラインにする確認ダイアログが表示されます。
オンラインが成功しました。
システムの概要と各機能の選択画面が表示されます。
Capture Logsを試す
まずはログを収集します。
各機能の選択画面でCapture Logs
を選択すると、以下の採取するログの選択画面が表示されます。ここでは全て選択してCollect
をクリックします。
EC2Rescueでメモリダンプとレジストリハイブを収集することについて確認があります。
ログを保存する場所を決めます。
暫く待ちます。
ログの収集が完了します。
ログはzipファイルになっており、解凍すると以下のようになります。
PS C:\Users\Administrator\Desktop\logdata> tree /f フォルダー パスの一覧: ボリューム Windows ボリューム シリアル番号は 00000008 EA89:641B です C:. │ [Content_Types].xml │ ├─BootConfiguration │ bcdedit.txt │ ├─DriverSetupAPI │ setupapi.dev.log │ setupapi.setup.log │ ├─EC2Launch │ ├─Config │ │ DriveLetterMappingConfig.json │ │ EventLogConfig.json │ │ LaunchConfig.json │ │ │ └─Logs │ Ec2Launch.log │ UserdataExecution.log │ WallpaperSetup.log │ ├─EventLog │ Application.evtx │ EC2ConfigService.evtx │ System.evtx │ ├─RegistryHives │ BCD │ SOFTWARE │ SYSTEM │ ├─SSMAgent │ └─Logs │ amazon-ssm-agent.log │ errors.log │ ├─SysPrepLogs │ ├─Generalize │ │ diagerr.xml │ │ diagwrn.xml │ │ setupact.log │ │ setuperr.log │ │ │ ├─Specialize │ │ DDACLSys.log │ │ diagerr.xml │ │ diagwrn.xml │ │ setupact.log │ │ setuperr.log │ │ │ └─UnattendGC │ diagerr.xml │ diagwrn.xml │ setupact.log │ setuperr.log │ ├─SystemInformation │ msinfo32.nfo │ └─WindowsUpdate WindowsUpdate.log
Diagnose and Rescueを試す
分析と復旧を行います。
各機能の選択画面でDiagnose and Rescue
を選択すると、以下の分析のサマリ画面が表示されます。
ここではWindows Firewallが3件、EC2Configが1件の計4件が上がっています。Windows Firewallではプロファイルの仕様によりアクセスが禁止されている場合があると出ています。EC2Configはインストールされていないと出ています。
検出された問題が表示されます。 Windows Firewallについて3件表示されています。Windows Server 2016ではEC2Configのサポートの対象外であるため表示されていません。ここでは3件全てにチェックを付けます。
復旧の対象を確認をします。
選択したディスクの設定を変更する旨を確認します。
結果が表示されます。Windows Firewallの各プロファイルが無効になりました。
更新したディスクを元のインスタンスにアタッチし直して起動するとWindows Firewallが無効になっていることが分かります。
Restoreを試す
レジストリのリストアを行います。
各機能の選択画面でRestore
を選択すると、リストアオプションの選択画面が表示されます。
今回はLast Known Good Configuration
を選択します。
リストアの確認をします。
前回の正常なログインにレジストリが戻るので、それ移行の設定変更が失われる事について確認されます。
結果が表示されます。レジストリのリストアが成功しました。
リストアは終了です。
これで前回ログインに成功した時点のレジストリに戻りました。
さいごに
EC2RescueはAWS Diagnostics for Windows Serverと同様にログインができないインスタンスや起動できないインスタンスを復旧できる可能性があります。その場合は事前にEC2Rescueをインストールしておく必要がありません。Windowsインスタンスのトラブルシューティングで使用する定番ツールとなると思うので一度使用方法を確認しておくと障害時に慌てずに対処できると思います。